85 research outputs found

    High-Quality Shared-Memory Graph Partitioning

    Full text link
    Partitioning graphs into blocks of roughly equal size such that few edges run between blocks is a frequently needed operation in processing graphs. Recently, size, variety, and structural complexity of these networks has grown dramatically. Unfortunately, previous approaches to parallel graph partitioning have problems in this context since they often show a negative trade-off between speed and quality. We present an approach to multi-level shared-memory parallel graph partitioning that guarantees balanced solutions, shows high speed-ups for a variety of large graphs and yields very good quality independently of the number of cores used. For example, on 31 cores, our algorithm partitions our largest test instance into 16 blocks cutting less than half the number of edges than our main competitor when both algorithms are given the same amount of time. Important ingredients include parallel label propagation for both coarsening and improvement, parallel initial partitioning, a simple yet effective approach to parallel localized local search, and fast locality preserving hash tables

    Parallel Graph Partitioning for Complex Networks

    Full text link
    Processing large complex networks like social networks or web graphs has recently attracted considerable interest. In order to do this in parallel, we need to partition them into pieces of about equal size. Unfortunately, previous parallel graph partitioners originally developed for more regular mesh-like networks do not work well for these networks. This paper addresses this problem by parallelizing and adapting the label propagation technique originally developed for graph clustering. By introducing size constraints, label propagation becomes applicable for both the coarsening and the refinement phase of multilevel graph partitioning. We obtain very high quality by applying a highly parallel evolutionary algorithm to the coarsened graph. The resulting system is both more scalable and achieves higher quality than state-of-the-art systems like ParMetis or PT-Scotch. For large complex networks the performance differences are very big. For example, our algorithm can partition a web graph with 3.3 billion edges in less than sixteen seconds using 512 cores of a high performance cluster while producing a high quality partition -- none of the competing systems can handle this graph on our system.Comment: Review article. Parallelization of our previous approach arXiv:1402.328

    Shared Memory Parallel Subgraph Enumeration

    Full text link
    The subgraph enumeration problem asks us to find all subgraphs of a target graph that are isomorphic to a given pattern graph. Determining whether even one such isomorphic subgraph exists is NP-complete---and therefore finding all such subgraphs (if they exist) is a time-consuming task. Subgraph enumeration has applications in many fields, including biochemistry and social networks, and interestingly the fastest algorithms for solving the problem for biochemical inputs are sequential. Since they depend on depth-first tree traversal, an efficient parallelization is far from trivial. Nevertheless, since important applications produce data sets with increasing difficulty, parallelism seems beneficial. We thus present here a shared-memory parallelization of the state-of-the-art subgraph enumeration algorithms RI and RI-DS (a variant of RI for dense graphs) by Bonnici et al. [BMC Bioinformatics, 2013]. Our strategy uses work stealing and our implementation demonstrates a significant speedup on real-world biochemical data---despite a highly irregular data access pattern. We also improve RI-DS by pruning the search space better; this further improves the empirical running times compared to the already highly tuned RI-DS.Comment: 18 pages, 12 figures, To appear at the 7th IEEE Workshop on Parallel / Distributed Computing and Optimization (PDCO 2017

    Finding all Convex Cuts of a Plane Graph in Polynomial Time

    Full text link
    Convexity is a notion that has been defined for subsets of \RR^n and for subsets of general graphs. A convex cut of a graph G=(V,E)G=(V, E) is a 22-partition V1∪˙V2=VV_1 \dot{\cup} V_2=V such that both V1V_1 and V2V_2 are convex, \ie shortest paths between vertices in ViV_i never leave ViV_i, i∈{1,2}i \in \{1, 2\}. Finding convex cuts is NP\mathcal{NP}-hard for general graphs. To characterize convex cuts, we employ the Djokovic relation, a reflexive and symmetric relation on the edges of a graph that is based on shortest paths between the edges' end vertices. It is known for a long time that, if GG is bipartite and the Djokovic relation is transitive on GG, \ie GG is a partial cube, then the cut-sets of GG's convex cuts are precisely the equivalence classes of the Djokovic relation. In particular, any edge of GG is contained in the cut-set of exactly one convex cut. We first characterize a class of plane graphs that we call {\em well-arranged}. These graphs are not necessarily partial cubes, but any edge of a well-arranged graph is contained in the cut-set(s) of at least one convex cut. We also present an algorithm that uses the Djokovic relation for computing all convex cuts of a (not necessarily plane) bipartite graph in \bigO(|E|^3) time. Specifically, a cut-set is the cut-set of a convex cut if and only if the Djokovic relation holds for any pair of edges in the cut-set. We then characterize the cut-sets of the convex cuts of a general graph HH using two binary relations on edges: (i) the Djokovic relation on the edges of a subdivision of HH, where any edge of HH is subdivided into exactly two edges and (ii) a relation on the edges of HH itself that is not the Djokovic relation. Finally, we use this characterization to present the first algorithm for finding all convex cuts of a plane graph in polynomial time.Comment: 23 pages. Submitted to Journal of Discrete Algorithms (JDA

    Computing Top-k Closeness Centrality Faster in Unweighted Graphs. (Technical Report)

    Get PDF
    Centrality indices are widely used analytic measures for the importance of nodes in a network. Closeness centrality is very popular among these measures. For a single node v, it takes the sum of the distances of v to all other nodes into account. The currently best algorithms in practical applications for computing the closeness for all nodes exactly in unweighted graphs are based on breadth-first search (BFS) from every node. Thus, even for sparse graphs, these algorithms require quadratic running time in the worst case, which is prohibitive for large networks. In many relevant applications, however, it is unnecessary to compute closeness values for all nodes. Instead, one requires only the k nodes with the highest closeness values in descending order. Thus, we present a new algorithm for computing this top-k ranking in unweighted graphs. Following the rationale of previous work, our algorithm significantly reduces the number of traversed edges. It does so by computing upper bounds on the closeness and stopping the current BFS search when k nodes already have higher closeness than the bounds computed for the other nodes. In our experiments with real-world and synthetic instances of various types, one of these new bounds is good for small-world graphs with low diameter (such as social networks), while the other one excels for graphs with high diameter (such as road networks). Combining them yields an algorithm that is faster than the state of the art for top-k computations for all test instances, by a wide margin for high-diameter graphs

    On Dynamic Graph Partitioning and Graph Clustering using Diffusion

    Get PDF
    • …
    corecore